Business Intelligence (BI) generally refers to software tools used to improve business enterprise decision-making. These tools are commonly applied to financial, human resource, marketing, sales, service provider, customer, and supplier analyses. More specifically, these tools can include reporting and analysis tools for presenting information, content delivery infrastructure systems for delivering and managing reports and analytics, and data warehousing systems for cleansing and consolidating information from disparate sources. BI tools may work with data management systems, such as relational databases or On Line Analytic Processing (OLAP) systems used to collect, store, and manage raw data.
There are a number of commercially available BI products that produce reports from stored data, such as Crystal Reports™, BusinessObjects Voyageur™, BusinessObjects Web Intelligence™, and Business Objects Enterprise™. As used herein, the term report refers to information automatically retrieved (i.e., in response to computer executable instructions) from a data source (e.g., a database, a data warehouse, and the like), where the information is structured in accordance with a report schema that specifies the form in which the information should be presented. A non-report is an electronic document that is constructed without the automatic retrieval (i.e., in response to computer executable instructions) of information from a data source. Examples of non-report electronic documents include typical business application documents, such as a word processor document, a spreadsheet document, a presentation document, and the like.
A report document is generally created by a specialized tool including executable instructions to access and format data. A report document where the content does not include external data, either saved within the report or accessed live, is a template document for a report rather than a report document. Unlike other non-report documents that may optionally import external data within a document, a report document by design is primarily a medium for accessing, formatting, and presenting external data.
A report design tool contains executable instructions specifically designed to facilitate working with external data sources. In addition to instructions regarding external data source connection drivers, these instructions may include advanced filtering of data, instructions for combining data from different external data sources, instructions for updating join structures and relationships in report data, and instructions including logic to support a more complex internal data model (that may include additional constraints, relationships, and metadata).
In contrast to a spreadsheet type application, a report generation tool generally is not limited to a table structure but can support a range of structures. A report design tool is designed primarily to support imported external data, whereas a spreadsheet application equally facilitates manually entered data and imported data. In both cases, a spreadsheet application applies a spatial logic that is based on the table cell layout within the spreadsheet in order to interpret data and perform calculations on the data. In contrast, a report design tool is not limited to logic that is based on the display of the data, but rather can interpret the data and perform calculations based on the original (or a redefined) data structure and meaning of the imported data. Spreadsheet applications work within a looping calculation model, whereas report generation tools may support a range of calculation models. Although there may be an overlap in the function of a spreadsheet document and a report document, the applications used to generate these documents contain instructions with different assumptions concerning the existence of an external data source and different logical approaches to interpreting and manipulating imported data.
The content delivery infrastructure for report distribution provides capabilities, such as publishing, that facilitate use of data sources. The publishing process enables centrally coordinated, rule-based control of the generation and delivery of reports and other documents to a variety of BI users. The processing of a single publication may result in the generation of multiple reports, each with its own distinct format, destination(s), and recipient(s). Report generation may be personalized by applying recipient attributes to report templates associated with a publication during the publishing process, resulting in the customization of each report to each recipient. The processing of the publication may also result in publishing of each report to the correct destination(s) and recipient(s).
Although publishing simplifies the generation and distribution of reports to a variety of users and can enable the personalization of each report, it does not, by itself, provide any capability to dynamically obtain information from users related to their interaction with reports. For example, if several users interact with their individual instances of a given report by using the same new feature, there is a need for an automatic mechanism to deliver this usage information to a data source accessible to a user with a need to analyze the information. With access to this information, analysis of the information can proceed to determine metrics such as user adoption of the new feature.
It would be desirable to provide a BI solution for dynamically obtaining data from users of personalized reports, and for writing back the data to a data source. As part of this solution, it would be advantageous to control the write-back process to ensure that each update of a data source is performed only by authorized users. It would also be desirable to analyze write-back data, for example, to track report usage or to determine how users interact with a report.